1,608 research outputs found

    IoT Malware Detection with Machine Learning

    Get PDF
    Embedded devices are increasingly connected to the Internet to provide new and innovative applications in many domains. However, these IoT devices can also contain security vulnerabilities, which allow attackers to compromise them using malware. We report on our recent work on using machine learning for efficient and effective malware detection on resource-constrained IoT devices

    Universal temperature dependence of optical excitation life-time and band-gap in chirality assigned semiconducting single-wall carbon nanotubes

    Full text link
    The temperature dependence of optical excitation life-time, Gamma, and transition energies, E_ii, were measured for bucky-papers of single-wall carbon nanotubes (SWCNTs) and inner tubes in double-wall carbon nanotubes (DWCNTs) using resonant Raman scattering. The temperature dependence of Gamma and E_ii is the same for both types of samples and is independent of tube chirality. The data proves that electron-phonon interaction is responsible for temperature dependence of E_ii(T). The temperature independent inhomogeneous contribution to Gamma is much larger in the SWCNT samples, which is explained by the different SWCNT environment in the two types of samples. Gamma of the inner tubes for the bucky-paper DWCNT sample is as low as \sim 30 meV, which is comparable to that found for individual SWCNTs

    Runtime exception detection in Java programs using symbolic execution

    Get PDF
    Most of the runtime failures of a software system can be revealed during test execution only, which has a very high cost. In Java programs, runtime failures are manifested as unhandled runtime exceptions. In this paper we present an approach and tool for detecting runtime exceptions in Java programs without having to execute tests on the software. We use the symbolic execution technique to implement the approach. By executing the methods of the program symbolically we can determine those execution branches that throw exceptions. Our algorithm is able to generate concrete test inputs also that cause the program to fail in runtime. We used the Symbolic PathFinder extension of the Java PathFinder as the symbolic execution engine. Besides small example codes we evaluated our algorithm on three open source systems: jEdit, ArgoUML, and log4j. We found multiple errors in the log4j system that were also reported as real bugs in its bug tracking system

    From C++ Refactorings to Graph Transformations

    Get PDF
    In this paper, we study a metamodel for the C++ programming language. We work out refactorings on the C++ metamodel and present the essentials as graph transformations. The refactorings are demonstrated in terms of the C++ source code and the C++ target code as well. Graph transformations allow to capture refactoring details on a conceptual and easy to understand, but also very precise level. Using this approach we managed to formalize two major aspects of refactorings: the structural changes and the preconditions

    An AST-based Code Change Representation and its Performance in Just-in-time Vulnerability Prediction

    Full text link
    The presence of software vulnerabilities is an ever-growing issue in software development. In most cases, it is desirable to detect vulnerabilities as early as possible, preferably in a just-in-time manner, when the vulnerable piece is added to the code base. The industry has a hard time combating this problem as manual inspection is costly and traditional means, such as rule-based bug detection, are not robust enough to follow the pace of the emergence of new vulnerabilities. The actively researched field of machine learning could help in such situations as models can be trained to detect vulnerable patterns. However, machine learning models work well only if the data is appropriately represented. In our work, we propose a novel way of representing changes in source code (i.e. code commits), the Code Change Tree, a form that is designed to keep only the differences between two abstract syntax trees of Java source code. We compared its effectiveness in predicting if a code change introduces a vulnerability against multiple representation types and evaluated them by a number of machine learning models as a baseline. The evaluation is done on a novel dataset that we published as part of our contributions using a 2-phase dataset generator method. Based on our evaluation we concluded that using Code Change Tree is a valid and effective choice to represent source code changes as it improves performance
    • …
    corecore